Zope3 DocTest Functional Tests
shimizukawa.iconも2006年頃に使ったことがある
shimizukawa.icon最近(2020年)だと VCR.py がある ただし、tcpwatchで通信を記録する必要がある(だるい)
3. tcpwatchをインストールします。
4. tcpwatchの出力を記録するための一時ディレクトリを作成します。
5. tcpwatch を以下のように実行します: tcpwatch.py -L 8081:8080 -s -r tmpdir (ポートはリスニングポートとフォワードトゥポートです。)
6. ブラウザで、リスニングポートに接続して、録画する必要があるものは何でもやってください。
7. tcpwatchをシャットダウンします。
8. スクリプトを実行する src/zope/app/testing/dochttp.py: python2.4 src/zope/app/testing/dochttp.py tmpdir > somefile.txt
9. 生成されたテキストファイルを編集して、説明を追加したり、出力の興味のない部分を削除したりします。
10. 機能テストモジュール (通常は ftests.py) で、 zope.app.testing.functional から FunctionalDocFileSuite をインポートし、テストを含むテキストファイルの名前を渡してインスタンス化します。
Zope 3 has this notion of functional doctests: functional tests (in the form of standalone doctest files) that pretend to perform HTTP requests to your Zope 3 server, and look at the response. Here's an example test from SchoolBell.
You can create functional doctests by using your browser and recording your session with TCPWatch, and then running a Python script that comes with Zope 3: dochttp. For some reason I found this method too cumbersome and usually just cloned existing doctests and changed the requests and responses by hand.
I now have a working prototype of a request recorder as a plug-in of Zope 3. You can set up a RecordingHTTP server on a separate port, and then go to /++etc++process/RecordedSessions.html to look at all requests you've made, filter them, and create a functional doctest.
(DeepL翻訳) Zope 3 には機能テストという概念があります: 機能テスト (スタンドアロンの doctest ファイル) は、Zope 3 サーバに HTTP リクエストを実行するふりをして、そのレスポンスを見るというものです。これは SchoolBell のテストの例です。ブラウザを使ってTCPWatchでセッションを記録し、Zope 3に付属のPythonスクリプトを実行することで、機能的なdoctestを作成することができます: dochttp。なぜかこの方法は面倒くさくて、いつもは既存のdoctestをクローンして、リクエストとレスポンスを手で変更していました。Zope 3 のプラグインとしてリクエストレコーダーのプロトタイプを作成しました。別のポートに RecordingHTTP サーバを設定して、/++etc++process/RecordedSessions.html にアクセスして、すべてのリクエストを見て、フィルタリングして、機能的な Doctest を作成することができます。